import java.util.Scanner;

public class day230408 {
    // 字符串通配符
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1 = sc.nextLine();
        String s2 = sc.nextLine();
        System.out.println(match(s1, s2));
    }

    private static boolean match(String s1, String s2) {
        char[] c1 = s1.toLowerCase().toCharArray();
        char[] c2 = s2.toLowerCase().toCharArray();
        int len2 = c1.length;
        int len1 = c2.length;
        // 定义二维数组
        // 默认都是false
        boolean[][] dp = new boolean[len1 + 1][len2 + 1];
        dp[0][0] = true;
        for (int i = 0; i <= len1; i++) {
            // 从第二列开始, 第一列除了 0,0 都是 false
            for (int j = 1; j <= len2; j++) {
                if (c1[j - 1] == '*') {
                    if (i == 0) {
                        // 第一行的情况
                        dp[i][j] = dp[i][j - 1];
                    } else {
                        if (Character.isAlphabetic(c2[i - 1]) || Character.isDigit(c2[i - 1]) || c2[i - 1] == '.') {
                            // * 只能匹配字母和数字
                            dp[i][j] = dp[i][j - 1] || dp[i - 1][j];
                        }
                    }
                } else {
                    // 不考虑第一行, 第一行不是 * 的都是 false
                    if (i > 0) {
                        if (c1[j - 1] == '?' || c1[j - 1] == c2[i - 1]) {
                            dp[i][j] = dp[i - 1][j - 1];
                        }
                    }
                }
            }
        }
        return dp[len1][len2];
    }

    // 统计每个月兔子的总数
    public static void main2(String[] args) {
        // 规律
        // 当前这个月兔子总数 是 上个月 加 上上个月的数量
        // 斐波那契数
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int f1 = 1;
        int f2 = 1;
        int f3 = 1;
        for (int i = 3; i <= m; i++) {
            f3 = f1 + f2;
            f1 = f2;
            f2 = f3;
        }
        System.out.println(f3);
    }

    public static void main1(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        System.out.println(1 + count(m - 1, 0, 1));
    }

    // m 剩余月份
    // a 可以生兔子的兔子
    private static int count(int m, int a, int b) {
        if (m == 0) {
            return 0;
        }
        // 当月生的兔子数量
        int count = a;

        count += count(m - 1, a + b, a);

        return count;
    }
}
